import sqlite3
import json

# 兴趣爱好中英文映射关系，与HTML中的选项对应
INTEREST_MAP = {
    "history": "历史文化",
    "nature": "自然风光",
    "food": "美食探店",
    "shopping": "购物血拼",
    "art": "艺术展览",
    "nightlife": "夜生活"
}

def translate_interest(interest):
    """将英文兴趣翻译成中文，若没有匹配的映射则返回原英文"""
    return INTEREST_MAP.get(interest.lower(), interest)

def get_translated_interests(user_id):
    """查询数据库并返回翻译后的的兴趣爱好（纯文本格式）"""
    try:
        # 连接数据库
        conn = sqlite3.connect('jiangsu.db')
        cursor = conn.cursor()
        
        # 查询指定user_id的preferences字段
        cursor.execute("SELECT preferences FROM user_preferences WHERE user_id = ?", (user_id,))
        result = cursor.fetchone()
        
        conn.close()
        
        if result and result[0]:
            # 解析JSON格式的preferences字段
            preferences = json.loads(result[0])
            # 提取interests列表
            interests = preferences.get('interests', [])
            
            if not interests:
                return "该用户没有兴趣记录"
                
            # 翻译兴趣项
            translated = [translate_interest(interest.strip()) for interest in interests]
            # 将列表转换为逗号分隔的文本
            return ", ".join(translated)
        else:
            return "未找到该用户或用户偏好记录"
            
    except sqlite3.Error as e:
        return f"数据库错误: {str(e)}"
    except json.JSONDecodeError:
        return "数据格式错误，无法解析preferences字段"
    except Exception as e:
        return f"发生错误: {str(e)}"

# 测试
if __name__ == "__main__":
    user_id = 8  # 替换为实际的user_id
    result = get_translated_interests(user_id)
    print(f"用户 {user_id} 的兴趣爱好（中文）：{result}")

    